li = ["zeno","小白","小黑","小绿","小黑"]
# index()通过元素找到对应的下标
print(li.index("小白"))
print(li.index("小黄"))
print(li.index("小黑",3)) # 3开始位置

# count()统计元素出现的次数
print(li.count("小黑"))

# append()把整个序列(字符串、列表)添加到列表当中去(结尾开始添加)
li.append("小黄")  # None    这个地方需要画个图理解
print(li)
li.append("zeno")
print(li)
# extend()把整个序列拆分逐一的添加到列表当中去(结尾开始添加) +
li.extend(["小黄","小黑"])
li.append(["小黄","小黑"])
print(li)

# insert()指定位置下标添加数据(插队)
li.insert(1,"jackson")  # 指定下标位置 元素  如果指定的下标超出范围 那么就是在最后进行添加
print(li)

# del删除整个数据内容包括数据结构  就是你再也找不到这个数据了

del li[0]  # 可以把整个数据删除或者删除某个下标指定数据
print(li)
# clear() 删除整个数据内容(就是一个空列表)  这是一个方法 那么怎么使用一个方法呢 .方法
li.clear()
print(li)

# pop()通过下标删除数据
li.pop()  # 不写参数默认是删除最后一个数据
li.pop(1)
print(li)
# remove()通过数据删除数据
li.remove("小白")
print(li)

li[0] = "jackson"  # 通过下标去修改值
print(li)

li2 = [10, 23, 67, 34, 89, 56]  # a-z
# sort()排序 默认从小到大进行排序
li2.sort()
print(li2)  # [10, 23, 34, 56, 67, 89]
li2.sort(reverse=True)  # 从大到小进行排序
print(li2)  # [89, 67, 56, 34, 23, 10]

print(sorted(li2))  # 返回新的排序后的列表
sorted()  # 能直接使用(自带的)，并且是带括号的：内置函数

# reverse()逆置   这个方法只能在循环里面使用
li.reverse()  # [::-1]
print(li)
for i in reversed(li):  # 迭代器对象：进行for循环遍历的
    print(i)

# 把0 1 2 3 4存到列表当中去
li3 = []  # 1.定义一个空列表
for i in range(5):  # 2.拿到0 1 2 3
    # if i%2 == 0:
    li3.append(i ** 2)  # 3.把值添加到列表当中去
print(li3)  # 4.打印这个值

# 列表推导式：生成一个新的列表(就是上面的简写)
li4 = [i**2 for i in range(5)]   # 这个i相当于就是存进去一个i 然后i满足i**2 并且在这个循环当中 次数
print(li4)

li5 = [i for i in range(10) if i%2==0]  # 求偶数
print(li5)

